from time import sleep

from selenium import webdriver
ff_driver = "C:/Python35-32/Scripts/geckodriver.exe"
ff_exe = "C:/Program Files (x86)/Mozilla Firefox/firefox.exe"
driver = webdriver.Firefox(firefox_binary=ff_exe,executable_path=ff_driver)
# 打开登录页面
driver.get('http://localhost/jxc/index.asp')
# 完成登录
ipts = driver.find_elements_by_tag_name('input')
ipts[0].send_keys('admin')
ipts[1].send_keys('admin')
ipts[2].click()
sleep(2)
import unittest

from selenium import webdriver
import unittest
# 判断进销存首页打开是否成功
class JXC_Login(unittest.TestCase):
    def test_login(self):
        # 打开进销存登录页面
        driver = webdriver.Firefox()
        driver.get('http://localhost/myweb/jxc/index.asp')
        # 断言
        self.assertIn('系统登陆', driver.page_source)
if __name__ == '__main__':
    unittest.main()


class TempTest(unittest.TestCase):
    def test_add(self):
        x = 1 + 1
        # 测试
        # assert: 断言（判断）  Equal: 相等
        self.assertEqual(2, x)
# 执行测试用例
# 自动调用
unittest.main()
import unittest
from selenium import webdriver


class JXC_Login_Test(unittest.TestCase):

    def test_login_error(self):
        driver = webdriver.Firefox()
        driver.get('http://localhost/myweb/jxc/index.asp')
        # 输入错误的用户名和密码
        driver.find_element_by_name('username').send_keys('wycg')
        driver.find_element_by_name('pwd').send_keys('27779')
        driver.find_element_by_name('enter').click()

        # 获取提示框中的提示文字
        alert = driver.switch_to.alert.text
        # 断言：应该弹出错误的提示信息
        # 提示信息中应该出现“。。。。密码错误!”这几个字
        self.assertIn('密码错误', alert)

    def test_login_ok(self):
        driver = webdriver.Firefox()
        driver.get('http://localhost/myweb/jxc/index.asp')
        driver.find_element_by_name('username').send_keys('admin')
        driver.find_element_by_name('pwd').send_keys('admin')
        driver.find_element_by_name('enter').click()

        # 断言：登录是否成功
        #  依据：'后台管理系统'这几个字，出现在页面源代码中
        self.assertIn('后台管理系统', driver.page_source)


unittest.main()


# 从当前默认位置切换到菜单框架中
driver.switch_to.frame('left')
# 点击菜单 系统设置
sysset_css = '.menuall > tbody:nth-child(1) > tr:nth-child(13) > td:nth-child(1)'
driver.find_element_by_css_selector(sysset_css).click()
sleep(2)
# 继续点击：计量单位管理
danwei_css = '#g_6 > table:nth-child(1) > tbody:nth-child(1) > tr:nth-child(7) > td:nth-child(1)'
driver.find_element_by_css_selector(danwei_css).click()
sleep(2)
# 切换原始位置
driver.switch_to.default_content()
# 切到右侧框架
driver.switch_to.frame('right')
sleep(2)
#删除单位
bt_css = '#chkall'
driver.find_element_by_css_selector(bt_css).click()
sleep(2)
bt_css = 'input.button:nth-child(2)'
driver.find_element_by_css_selector(bt_css).click()
sleep(2)
# 点击确认按钮
driver.find_element_by_name('submit').click()
sleep(2)
# 处理弹框
driver.switch_to.alert.accept()
sleep(2)
class TempTest(unittest.TestCase):
    def test_add(self):
        x = 1 + 1
        # 测试
        # assert: 断言（判断）  Equal: 相等
        self.assertEqual(2, x)
# 执行测试用例
# 自动调用
unittest.main()
# 点击添加单位按钮
bt_css = 'input.button:nth-child(1)'
driver.find_element_by_css_selector(bt_css).click()
sleep(2)
# 点击确认按钮
driver.find_element_by_name('submit').click()
sleep(2)
# 处理弹框
driver.switch_to.alert.accept()
sleep(2)
# 输入单位名称
driver.find_element_by_name('danwei').send_keys('吨')
# 点击确认按钮
driver.find_element_by_name('submit').click()
sleep(2)
# 处理弹框
driver.switch_to.alert.accept()
sleep(2)
class TempTest(unittest.TestCase):
    def test_add(self):
        x = 1 + 1
        # 测试
        # assert: 断言（判断）  Equal: 相等
        self.assertEqual(2, x)
# 执行测试用例
# 自动调用
unittest.main()
sleep(2)
# 切换原始位置
driver.switch_to.default_content()
# 从当前默认位置切换到菜单框架中
driver.switch_to.frame('left')
# 点击菜单 系统设置
sysset_css = '.menuall > tbody:nth-child(1) > tr:nth-child(13) > td:nth-child(1)'
driver.find_element_by_css_selector(sysset_css).click()
sleep(2)
# 继续点击：产品大类管理
bigclass_css = '#g_6 > table:nth-child(1) > tbody:nth-child(1) > tr:nth-child(5) > td:nth-child(1) > table:nth-child(1) > tbody:nth-child(1) > tr:nth-child(1) > td:nth-child(2)'
driver.find_element_by_css_selector(bigclass_css).click()
sleep(2)
# 切换原始位置
driver.switch_to.default_content()
# 切到右侧框架
driver.switch_to.frame('right')
sleep(2)
# 点击添加大类按钮
bt_css = 'input.button:nth-child(1)'
driver.find_element_by_css_selector(bt_css).click()
sleep(2)
# 输入大类名称
driver.find_element_by_name('bigclass').send_keys('军用制式弹药')
# 点击确认按钮
driver.find_element_by_name('submit').click()
sleep(2)
# 处理弹框
driver.switch_to.alert.accept()
sleep(2)
class TempTest(unittest.TestCase):
    def test_add(self):
        x = 1 + 1
        # 测试
        # assert: 断言（判断）  Equal: 相等
        self.assertEqual(2, x)
# 执行测试用例
# 自动调用
unittest.main()
sleep(2)
# 切换原始位置
driver.switch_to.default_content()
# 从当前默认位置切换到菜单框架中
driver.switch_to.frame('left')
# 点击菜单 系统设置
sysset_css = '.menuall > tbody:nth-child(1) > tr:nth-child(13) > td:nth-child(1)'
driver.find_element_by_css_selector(sysset_css).click()
# 继续点击：产品小类管理
smallclass_css = '#g_6 > table:nth-child(1) > tbody:nth-child(1) > tr:nth-child(6) > td:nth-child(1) > table:nth-child(1) > tbody:nth-child(1) > tr:nth-child(1) > td:nth-child(2)'
driver.find_element_by_css_selector(smallclass_css).click()
sleep(2)
# 切换原始位置
driver.switch_to.default_content()
# 切到右侧框架
driver.switch_to.frame('right')
sleep(2)
#请选择大类
bigclass_css = "body > table:nth-child(1) > tbody:nth-child(2) > tr:nth-child(1) > td:nth-child(2) > select:nth-child(1) > option:nth-child(1)"
driver.find_element_by_css_selector(bigclass_css).click()
sleep(2)
# 点击添加小类按钮
bt_css = 'input.button:nth-child(1)'
driver.find_element_by_css_selector(bt_css).click()
sleep(2)
# 输入小类名称
driver.find_element_by_name('smallclass').send_keys('5.8毫米微声弹')
# 点击确认按钮
driver.find_element_by_name('submit').click()
sleep(2)
# 处理弹框
driver.switch_to.alert.accept()
sleep(2)
class TempTest(unittest.TestCase):
    def test_add(self):
        x = 1 + 1
        # 测试
        # assert: 断言（判断）  Equal: 相等
        self.assertEqual(2, x)
# 执行测试用例
# 自动调用
unittest.main()
sleep(2)
# 切换原始位置
driver.switch_to.default_content()
# 切换到顶部框架
driver.switch_to.frame('topFrame')
driver.find_element_by_link_text('安全退出').click()
sleep(2)
driver.switch_to.alert.accept()
sleep(2)
# 关闭浏览器
driver.quit()

import unittest
from selenium import webdriver


class JXC_Login_Test(unittest.TestCase):

    # 在每个测试方法执行前，自动调用本方法
    def setUp(self):
        self.driver = webdriver.Firefox()
        self.driver.get('http://localhost/myweb/jxc/index.asp')

    # 在每个测试方法执行后，自动调用本方法
    def tearDown(self):
        self.driver.quit()

    def test_login_error(self):
        # 输入错误的用户名和密码
        self.driver.find_element_by_name('username').send_keys('abcd')
        self.driver.find_element_by_name('pwd').send_keys('12234')
        self.driver.find_element_by_name('enter').click()

        # 获取提示框中的提示文字
        alert = self.driver.switch_to.alert.text
        # 断言：应该弹出错误的提示信息
        # 提示信息中应该出现“。。。。密码错误!”这几个字
        self.assertIn('密码错误', alert)

    def test_login_ok(self):
        self.driver.find_element_by_name('username').send_keys('admin')
        self.driver.find_element_by_name('pwd').send_keys('admin')
        self.driver.find_element_by_name('enter').click()

        # 断言：登录是否成功
        #  依据：'后台管理系统'这几个字，出现在页面源代码中
        self.assertIn('后台管理系统', self.driver.page_source)


if __name__ == '__main__':
    unittest.main()

import unittest
from selenium import webdriver


class JXC_Login_Test(unittest.TestCase):

    # 在每个测试方法执行前，自动调用本方法
    def setUp(self):
        self.driver = webdriver.Firefox()
        self.driver.get('http://localhost/myweb/jxc/index.asp')

    # 在每个测试方法执行后，自动调用本方法
    def tearDown(self):
        self.driver.quit()

    def test_login_error(self):
        # 输入错误的用户名和密码
        self.driver.find_element_by_name('username').send_keys('abcd')
        self.driver.find_element_by_name('pwd').send_keys('12234')
        self.driver.find_element_by_name('enter').click()

        # 获取提示框中的提示文字
        alert = self.driver.switch_to.alert.text
        # 断言：应该弹出错误的提示信息
        # 提示信息中应该出现“。。。。密码错误!”这几个字
        self.assertIn('密码错误', alert)

    def test_login_ok(self):
        self.driver.find_element_by_name('username').send_keys('admin')
        self.driver.find_element_by_name('pwd').send_keys('admin')
        self.driver.find_element_by_name('enter').click()

        # 断言：登录是否成功
        #  依据：'后台管理系统'这几个字，出现在页面源代码中
        self.assertIn('后台管理系统', self.driver.page_source)


# 测试集合（套）：专门指定用例执行的顺序
def test_suite():
    # 定义一个测试集合
    suite = unittest.TestSuite()
    # 向测试集合中添加要执行的测试方法
    #  规范：类名("方法名")
    suite.addTest(JXC_Login_Test('test_login_error'))
    suite.addTest(JXC_Login_Test('test_login_ok'))
    return suite


# 运行测试集合
# 新建一个测试用例的执行器
runner = unittest.TextTestRunner()
# 运行
runner.run(test_suite())